iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 3
0
自我挑戰組

網路世界的奇怪冒險系列 第 3

【Day 3】 練習撈出一週日期的SQL語法

  • 分享至 

  • xImage
  •  

大家好,今天跟大家一起學習如何在SQL Server裡面,寫撈出一週的SQL語法。
之後會藉著這個小語法,演變成在Visual Studio 2017 寫出一個簡單的排班表。敬啟期待,希望自己不要富堅。

那先介紹幾個日期相關的語法,首先是

1.GETDATE():目前資料庫的系統時間戳記以 datetime 值傳回 (不含資料庫時區位移)。 (簡單來說,就是取得目前的日期時間)
2.DATEADD():此函式會將指定的 number 值(以帶正負號的整數形式) 加到輸入 date 值的指定 datepart,然後傳回該修改過的值。 (簡單來說,就是針對日期做加減)
3.DATEDIFF():此函式會傳回跨越指定 startdate 和 enddate 之指定 datepart 界限的計數 (作為帶正負號的整數值)。

select		
            convert(varchar,DATEADD(day, -1, DATEADD(week, DATEDIFF(week, '', getDate()), '')),111) as N'星期日',
			convert(varchar,DATEADD(week, DATEDIFF(week, '', getDate()), ''), 111)                  as N'星期一',
            convert(varchar,DATEADD(day, +1, DATEADD(week, DATEDIFF(week, '', getDate()), '')),111) as N'星期二',
            convert(varchar,DATEADD(day, +2, DATEADD(week, DATEDIFF(week, '', getDate()), '')),111) as N'星期三',
            convert(varchar,DATEADD(day, +3, DATEADD(week, DATEDIFF(week, '', getDate()), '')),111) as N'星期四',
            convert(varchar,DATEADD(day, +4, DATEADD(week, DATEDIFF(week, '', getDate()), '')),111) as N'星期五',
            convert(varchar,DATEADD(day, +5, DATEADD(week, DATEDIFF(week, '', getDate()), '')),111) as N'星期六'

查詢結果:

https://ithelp.ithome.com.tw/upload/images/20190919/20112000NHsGnw5Raa.png

參考網址:
GETDATE (Transact-SQL)
DATEADD (Transact-SQL)
DATEDIFF (Transact-SQL)


上一篇
【Day 2】 在Visual Studio 2017 寫一個QRcode產生器
下一篇
【Day 4】 在Visual Studio 2017 寫一個簡單的班表(1/3)
系列文
網路世界的奇怪冒險30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言